home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / gkismet / GpsBox.pm < prev    next >
Text File  |  2005-10-20  |  2KB  |  130 lines

  1. #!/usr/bin/perl -w
  2. #
  3. # $Id: GpsBox.pm,v 1.5 2003/08/04 05:06:12 solovam Exp $
  4. #
  5. # This file is a part of gkismet
  6. #
  7. # This program is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU General Public License
  9. # as published by the Free Software Foundation; either version 2
  10. # of the License, or (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software
  19. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20. #
  21.  
  22. #
  23. # GpsBox class
  24. #
  25. package GpsBox;
  26.  
  27. use Gtk;
  28. use Misc;
  29. use InfoBox;
  30. use strict;
  31. @GpsBox::ISA = qw(InfoBox);
  32.  
  33. my @labels = qw(Latitude Longitude Altitude Speed Fix);
  34.  
  35. #
  36. # Return list of labels
  37. #
  38. sub getLabels
  39. {
  40.     my $self = shift;
  41.     return(@labels);
  42. }
  43.  
  44. #
  45. # Get value by label
  46. #
  47. sub getValue
  48. {
  49.     my $self = shift;
  50.     my $label = shift;
  51.     if($label eq 'Latitude')
  52.     {
  53.         return sprintf '%.3f', $self->{'connection'}->getGps()->{'lat'};
  54.     }
  55.     elsif($label eq 'Longitude')
  56.     {
  57.         return sprintf '%.3f', $self->{'connection'}->getGps()->{'lon'};
  58.     }
  59.     elsif($label eq 'Altitude')
  60.     {
  61.         if($self->{'gKismetApplication'}->{'preferences'}->getPref('units') eq 'imperial')
  62.         {
  63.             return sprintf '%.3fft', $self->{'connection'}->getGps()->{'alt'};
  64.         }
  65.         else
  66.         {
  67.             return sprintf '%.3fm', $self->{'connection'}->getGps()->{'alt'} * $footFactor;
  68.         }
  69.     }
  70.     elsif($label eq 'Speed')
  71.     {
  72.         if($self->{'gKismetApplication'}->{'preferences'}->getPref('units') eq 'imperial')
  73.         {
  74.             return sprintf '%.3fmph', $self->{'connection'}->getGps()->{'spd'};
  75.         }
  76.         else
  77.         {
  78.             return sprintf '%.3fkmh', $self->{'connection'}->getGps()->{'spd'} / ($mileFactor / 1000);
  79.         }
  80.     }
  81.     elsif($label eq 'Fix')
  82.     {
  83.         my $fix = $self->{'connection'}->getGps()->{'fix'};
  84.         if($fix == -1)
  85.         {
  86.             return 'No signal';
  87.         }
  88.         elsif($fix == 2)
  89.         {
  90.             return '2D';
  91.         }
  92.         elsif($fix == 3)
  93.         {
  94.             return '3D';
  95.         }
  96.         else
  97.         {
  98.             return 'NONE';
  99.         }
  100.     }
  101. }
  102.  
  103. #
  104. # Frame label
  105. #
  106. sub getTitle
  107. {
  108.     return 'GPS data';
  109. }
  110.  
  111. #
  112. # Is ot our update?
  113. #
  114. sub isInterestingUpdate
  115. {
  116.     my $self = shift;
  117.     my $data = shift;
  118.  
  119.     if($data->{'changed'} eq 'gps')
  120.     {
  121.         return $true;
  122.         }
  123.     else
  124.     {
  125.         return $false;
  126.      }
  127. }
  128.  
  129. 1;
  130.